package br.com.unip.menudroidweb.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="usuario")
@NamedQueries(value={
		@NamedQuery(name="Usuario.buscarPorApelido", query="select u from Usuario u where u.abreviacao = :abreviacao")		
})
public class Usuario implements Serializable {
	private static final long serialVersionUID = 8179739667472414271L;
	
	public static final String BUSCAR_POR_ABREVIACAO = "Usuario.buscarPorApelido";

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int idUsuario;

	@Column(nullable=false, length=50)
	private String abreviacao;

    @Temporal(TemporalType.TIMESTAMP)
	private Date dataNascimento;

	@Column(nullable=false, length=100)
	private String nome;

	@Column(nullable=false, length=6)
	private String senha;
	
	@OneToOne
	@JoinColumn(name = "idEmpresa")
	private Empresa empresa;

    public Usuario() {
    }

	public int getIdUsuario() {
		return this.idUsuario;
	}

	public void setIdUsuario(int idUsuario) {
		this.idUsuario = idUsuario;
	}

	public String getAbreviacao() {
		return this.abreviacao;
	}

	public void setAbreviacao(String abreviacao) {
		this.abreviacao = abreviacao;
	}

	public Date getDataNascimento() {
		return this.dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getSenha() {
		return this.senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public Empresa getEmpresa() {
		if (empresa == null) {
			empresa = new Empresa();
			
		}

		return empresa;
	}

	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}

}